import axios from 'axios'
import { Message } from 'element-ui'

//创建axios实例
const service = axios.create({
  baseURL:process.env.BASE_API,  //API的base_url
  timeout:10000                   //请求超时时间
})

// request拦截器
service.interceptors.request.use(config => {
  // Do something before request is sent
  // if (store.getters.token) {
  //   config.headers['X-Token'] = getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
  // }
  //在非生产环境下，校验提交的data是否包含undefined
  if( process.env.NODE_ENV !== 'product' ){
    //校验一下config.data中的值，是否存在值为undefined的情况
    let undefinedList = checkUndefinedValue( config.data );
    if( undefinedList.length > 0  ){
      /*      let resultStr = undefinedList.join() ;
            console.error( '提交的数据中，以下属性值为undefined，请核对：' +  resultStr );
            console.error( '-------------------------------------------');
            console.error( '请求的接口：' , config.url );
            console.error( '提交的数据(Object)：' , config.data );
            console.error( '提交的数据(String)：' , JSON.stringify( config.data ) );*/
    }
  }

  return config
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
  response => response,
  error => {
    console.log('err' + error)// for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

export default service
